//package com.aijk.web.admin.pay;
//
//import com.aijk.commons.lang.utils.MapEx;
//import com.aijk.commons.lang.utils.StringUtil;
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONObject;
//import org.apache.commons.logging.Log;
//import org.apache.commons.logging.LogFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.annotation.PathVariable;
//import org.springframework.web.bind.annotation.RequestMapping;
//
//import javax.servlet.http.HttpServletRequest;
//import java.io.PrintWriter;
//import java.util.*;
//
///**
// * longdancao
// */
//@Controller
//@RequestMapping(value = "h5//pay")
//public class PayController {
//    private static final Log log = LogFactory.getLog(PayController.class);
//
//    @Autowired
//    private OrderRecordApi orderRecordService;
//    @Autowired
//    private AlipayServiceApi alipayServiceApi;
//    @Autowired
//    private PeRecordApi peRecordApi;
//
//    @RequestMapping(value = "alipay_notify/{notify_token}")
//    public void alipay_notify(@PathVariable("notify_token") String notify_token,
//            HttpServletRequest request, PrintWriter out) {
//        try {
//            log.info("*************************************支付宝支付回调*****************************");
//            // 获取支付宝的通知返回参数，可参考技术文档中页面跳转同步通知参数列表(以下仅供参考)//
//            Map<String, String> params = getAllRequestParam(request);
//            log.info("通知参数:"+ JSON.toJSONString(params));
//            // 商户订单号
//            String out_trade_no = new String(request.getParameter("out_trade_no").getBytes("iso-8859-1"), "utf-8");
//            // 支付宝交易号
//            String trade_no = new String(request.getParameter("trade_no").getBytes("iso-8859-1"), "utf-8");
//            // 交易状态
//            String trade_status = new String(request.getParameter("trade_status").getBytes("iso-8859-1"), "utf-8");
//            // 买家ID
//            String buyer_id = new String(request.getParameter("buyer_id").getBytes("iso-8859-1"), "utf-8");
//            // 买家账号
//            String buyer_email = new String(request.getParameter("buyer_email").getBytes("iso-8859-1"), "utf-8");
//            OrderRecord orderRecord = orderRecordService.findOne(notify_token);
//            orderRecord.setNotifyTime(new Date());
//            orderRecord.setTradeNo(trade_no);
//            orderRecord.setBuyerId(buyer_id);
//            orderRecord.setBuyerEmail(buyer_email);
//            orderRecord.setNotifyCount(orderRecord.getNotifyCount() + 1);
//            orderRecord.setNotifyParam(JSONObject.toJSONString(request.getParameterMap()));
//            // 获取支付宝的通知返回参数，可参考技术文档中页面跳转同步通知参数列表(以下仅供参考)//
//            String verify_result = alipayServiceApi.verify(request.getParameterMap());
//            if (verify_result.equals("success")) { // 验证成功
//                boolean success = false;
//                if ("TRADE_SUCCESS".equalsIgnoreCase(trade_status)) {
//                    orderRecord.setPayTime(new Date());
//                    orderRecord.setStatus(OrderRecord.Status_Notify_0);
//                    orderRecord.setUpdateTime(new Date());
//                    orderRecordService.update(orderRecord);
//                    orderRecordService.saveProcess(orderRecord);
//                    orderRecord.setStatus(OrderRecord.Status_Notify_1);
//                    orderRecordService.update(orderRecord);
//                    orderRecordService.saveProcess(orderRecord);
//                    if (orderRecord.getTradeSource() == OrderRecord.Trade_Source_Pe){
//                        PeRecordQo peRecordQo = new PeRecordQo();
//                        peRecordQo.setOutTradeNo(orderRecord.getOrderNo());
//                        List<PeRecordVo> peRecordVos = peRecordApi.list(peRecordQo);
//                        if (peRecordVos != null && peRecordVos.size() > 0){
//                            PeRecordDto peRecordDto = new PeRecordDto();
//                            peRecordDto.setId(peRecordVos.get(0).getId());
//                            peRecordDto.setPayWay((byte)1);
//                            peRecordDto.setPayStatus((byte)1);
//                            peRecordApi.update(peRecordDto);
//                            success = true;
//                        }
//                    }
//                    if (success) {
//                        orderRecord.setTimeEnd(new Date().getTime() + "");
//                        orderRecord.setStatus(OrderRecord.Status_Finish);
//                        orderRecordService.update(orderRecord);
//                        orderRecordService.saveProcess(orderRecord);
//                    } else {
//                        orderRecord.setStatus(OrderRecord.Status_Notify_2);
//                        orderRecordService.update(orderRecord);
//                        orderRecordService.saveProcess(orderRecord);
//                    }
//                } else {
//
//                }
//                out.print(success ? "success":"fail");
//            } else {	//验证失败
//                out.println("fail");
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//            out.println("fail");
//        }
//    }
//
//
//    /**
//     * 获取请求参数中所有的信息
//     *
//     * @param request
//     * @return
//     */
//    public static Map<String, String> getAllRequestParam(HttpServletRequest request) {
//        Map<String, String> res = new HashMap<String, String>();
//        Enumeration<?> temp = request.getParameterNames();
//        if (null != temp) {
//            while (temp.hasMoreElements()) {
//                String en = (String) temp.nextElement();
//                String value = request.getParameter(en);
//                if (StringUtil.isNotBlank(value)){
//                    res.put(en, value);
//                }
//            }
//        }
//        return res;
//    }
//}
